package com.taotao.order.service;

import com.taotao.order.domain.Order;
import com.taotao.order.domain.PaymentFlow;
import com.taotao.order.domain.request.OrderMessage;
import com.taotao.product.domain.SkuInventoryQuantity;

import java.util.List;

public interface OrderService {
    /**
    * @Author ZhangYuQi
    * @Description 添加交易流水记录
    * @Date 下午7:53 2025/2/5
    * @Param [paymentFlow]
    * @return
    */
    void addTransactionFlows(PaymentFlow paymentFlow);

    /**
    * @Author ZhangYuQi
    * @Description 根据交易流水号查询交易流水记录
    * @Date 下午8:37 2025/2/5
    * @Param [tradeNo]
    * @return
    */
    PaymentFlow findByTradeNo(String tradeNo);

    /**
    * @Author ZhangYuQi
    * @Description  实现异步下单逻辑
    * @Date 下午6:49 2025/2/9
    * @Param [orderMessage]
    * @return
    */
    String placeAnOrder(OrderMessage orderMessage);

    /**
    * @Author ZhangYuQi
    * @Description 插入订单信息
    * @Date 下午7:09 2025/2/9
    * @Param [order]
    * @return
    */
    void insertOrder(Order order);

    /**
    * @Author ZhangYuQi
    * @Description 查询redis中的订单状态
    * @Date 上午10:39 2025/2/10
    * @Param [orderNum]
    * @return
    */
    Integer selectOrderStatusByOrderNum(String orderNum);

    /**
    * @Author ZhangYuQi
    * @Description 添加订单关联sku中间表
    * @Date 下午2:28 2025/2/11
    * @Param [id, skuOrders]
    * @return
    */
    void insertSkuOrder(Long id, List<SkuInventoryQuantity> skuOrders);
}
